package com.lboyang.seckill.util;

import org.apache.commons.codec.digest.DigestUtils;

/**
 * @Description:
 * @Author: Aiguodala
 * @CreateDate: 2021/5/23 17:42
 */
public class MD5Util {

    /**
     * 加盐（简化操作为写死）
     */
    private static final String SALT = "1a2b3c4d";

    /**
     * MD5 加密
     * @param src
     * @return
     */
    public static String md5(String src) {
        return DigestUtils.md5Hex(src);
    }

    /**
     * 第一次加密，将前端输入的代码进行第一次加密
     * @param inputPasswd
     * @return
     */
    public static String inputPasswdToFromPasswd (String inputPasswd) {
        return md5("" + SALT.charAt(0) + SALT.charAt(2) + inputPasswd + SALT.charAt(5) + SALT.charAt(4));
    }

    /**
     * 第二次加密，将前端加密的密码再加盐加密之后存入数据库
     * @param fromPasswd
     * @param salt
     * @return
     */
    public static String fromPasswdToDBPasswd(String fromPasswd, String salt) {
        return md5("" + salt.charAt(0) + salt.charAt(2) + fromPasswd + salt.charAt(5) + salt.charAt(4));
    }

    /**
     * 整合上面两个方法
     * @param inputPasswd
     * @param salt
     * @return
     */
    public static String inputPasswdToDBPasswd(String inputPasswd, String salt) {
        return fromPasswdToDBPasswd(inputPasswdToFromPasswd(inputPasswd), salt);
    }

    public static void main(String[] args) {
        System.out.println(inputPasswdToFromPasswd("123456"));
        System.out.println(inputPasswdToDBPasswd("123456", "1a2b3c4d"));
    }

}
